package com.songqi.common.core.domain.page;

import com.baomidou.mybatisplus.core.metadata.IPage;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.io.Serializable;
import java.util.List;

/**
 * 表格分页数据对象
 *
 * @author songqi(13776346982)
 */

@Data
public class PageDataInfo<T> implements Serializable
{
    private static final long serialVersionUID = 1L;

    /** 总记录数 */
    private Long total;

    /** 列表数据 */
    private List<T> rows;


    @ApiModelProperty(value = "总页数")
    private Long maxPage;

    @ApiModelProperty("当前页")
    private Long pageNum;

    /** 每页显示记录数 */
    @ApiModelProperty("每页显示记录数")
    private Long pageSize;


    /** 消息状态码 */
    private int code;

    /** 消息内容 */
    private String msg;

    /**
     * 表格数据对象
     */
    public PageDataInfo()
    {
    }

    /**
     * 分页
     *
     * @param list 列表数据
     * @param total 总记录数
     */
    public PageDataInfo(List<T> list, long total)
    {
        this.rows = list;
        this.total = total;
    }


    public PageDataInfo(IPage iPage){
        this.total = iPage.getTotal();
        this.pageNum = iPage.getCurrent();
        this.maxPage = iPage.getPages();
        this.pageSize = iPage.getSize();
    }
}
